/*
 * @Author       : Thyssen Wen
 * @Date         : 2022-09-14 13:42:07
 * @LastEditors  : Thyssen Wen
 * @LastEditTime : 2022-09-14 13:51:57
 * @Description  : AbstractDispaly Class
 * @FilePath     : /cdesign-pattern/Template/AbstractDisplay.h
 */
#pragma once
class AbstractDisplay
{
public:
    AbstractDisplay();
    virtual ~AbstractDisplay();

    virtual void open()=0;
    virtual void print()=0;
    virtual void close()=0;
    virtual void display() final;
};

AbstractDisplay::AbstractDisplay()
{
}

AbstractDisplay::~AbstractDisplay()
{
}

void AbstractDisplay::display(){
    open();
    for (int i = 0; i < 5; i++)
    {
        print();
    }
    close();
}
